package leetcode_700;

/**
 *@author 周杨
 *ValidPalindromeII_680 判断一个字符串是否能通过删掉一个字符 变成回文字符串
 *describe:用回溯两次 AC 50%
 *2018年10月6日 下午6:37:32
 */
public class ValidPalindromeII_680 {
	 public boolean validPalindrome(String s) {
		   char chars[]=s.toCharArray();
	       int left=0,right=s.length()-1;
	       while(left<right) {
	    	   if(chars[left]==chars[right]) {
	    		   ++left;
	    		   --right;
	    	   }
	    	   else
	    		   return help(chars,left+1,right)||help(chars,left,right-1);
	       }
	       return true;
	       
	 }
	 
	 public boolean help(char [] chars,int left,int right) {
		 while(left<right) {
			 if(chars[left]==chars[right]) {
	    		   ++left;
	    		   --right;
	    	   }
			 else {
				 return false;
			 }
		 }
		 return true;
	 }
}
